﻿#pragma warning disable IDE1006
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace WUDI.ECharts.Timeline
{
	/// <summary>
	/// 『当前项』（checkpoint）的图形样式。
	/// </summary>
	public class CheckpointStyle
	{

		/// <summary>
		/// timeline.checkpointStyle 标记的图形
		/// <para>
		/// ECharts 提供的标记类型包括
		/// </para>
		/// <para>
		/// circle, rect, roundRect, triangle, diamond, pin, arrow, none
		/// </para>
		/// <para>
		/// 可以通过 image://url 设置为图片，其中 URL 为图片的链接，或者 dataURI
		/// </para>
		/// <para>
		/// 可以通过 path:// 将图标设置为任意的矢量路径
		/// </para>
		/// <para>
		/// 这种方式相比于使用图片的方式，不用担心因为缩放而产生锯齿或模糊，而且可以设置为任意颜色
		/// </para>
		/// <para>
		/// 路径图形会自适应调整为合适的大小
		/// </para>
		/// <para>
		/// 路径的格式参见 SVG PathData
		/// </para>
		/// <para>
		/// <see href="http://www.w3.org/TR/SVG/paths.html#PathData"/>
		/// </para>
		/// <para>
		/// 可以从 Adobe Illustrator 等工具编辑导出
		/// </para>
		/// </summary>
		public dynamic symbol { get; set; }  = "circle";

		/// <summary>
		/// timeline.checkpointStyle 标记的大小，可以设置成诸如 10 这样单一的数字，也可以用数组分开表示宽和高，例如 [20, 10] 表示标记宽为20，高为10。
		/// <para>number/Array</para>
		/// </summary>
		public dynamic symbolSize { get; set; }  = 13;

		/// <summary>
		/// timeline.checkpointStyle 标记的旋转角度（而非弧度）
		/// <para>
		/// 正值表示逆时针旋转
		/// </para>
		/// <para>
		/// 注意在 markLine 中当 symbol 为 arrow 时会忽略 symbolRotate 强制设置为切线的角度
		/// </para>
		/// </summary>
		public dynamic symbolRotate { get; set; } 

		/// <summary>
		/// 如果 symbol 是 path:// 的形式，是否在缩放时保持该图形的长宽比。
		/// </summary>
		public dynamic symbolKeepAspect { get; set; }  = false;

		/// <summary>
		/// timeline.checkpointStyle 标记相对于原本位置的偏移
		/// <para>
		/// 默认情况下，标记会居中置放在数据对应的位置，但是如果 symbol 是自定义的矢量路径或者图片，就有可能不希望 symbol 居中
		/// </para>
		/// <para>
		/// 这时候可以使用该配置项配置 symbol 相对于原本居中的偏移，可以是绝对的像素值，也可以是相对的百分比
		/// </para>
		/// </summary>
		public dynamic symbolOffset { get; set; }  = "[0, 0]";

		/// <summary>
		/// timeline组件中『当前项』（checkpoint）的颜色。
		/// </summary>
		public dynamic color { get; set; }  = "#c23531";

		/// <summary>
		/// timeline组件中『当前项』（checkpoint）的边框宽度。
		/// </summary>
		public dynamic borderWidth { get; set; }  = 5;

		/// <summary>
		/// timeline组件中『当前项』（checkpoint）的边框颜色。
		/// </summary>
		public dynamic borderColor { get; set; }  = "rgba(194,53,49, 0.5)";

		/// <summary>
		/// timeline组件中『当前项』（checkpoint）在 timeline 播放切换中的移动，是否有动画。
		/// </summary>
		public dynamic animation { get; set; }  = true;

		/// <summary>
		/// timeline组件中『当前项』（checkpoint）的动画时长。
		/// </summary>
		public dynamic animationDuration { get; set; }  = 300;

		/// <summary>
		/// timeline组件中『当前项』（checkpoint）的动画的缓动效果
		/// <para>
		/// 不同的缓动效果可以参考 缓动示例
		/// </para>
		/// <para>
		/// <see href="https://echarts.apache.org/examples/zh/view.html?c=line-easing"/>
		/// </para>
		/// </summary>
		public WUDI.ECharts.AnimationEasing animationEasing { get; set; }  = WUDI.ECharts.AnimationEasing.quinticInOut;

	}
}